package com.example.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.pojo.Collar;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.Set;

/**
 * @author w
 */
@Repository
public interface CollarMapper extends BaseMapper<Collar> {
    /**
     * 因为不知道为什么mybatis-plus不插collarId,就自己写了
     * @param collar 项圈信息
     * @return 影响行数
     */
    @Insert("INSERT INTO collar  ( collar_id,collar_introduction, user_id, pet_id )  VALUES  ( #{collarId},#{collarIntroduction}, #{userId},#{petId} )")
    int myInsert(Collar collar);

    /**
     * 查询用户的宠物绑定的项圈
     * @param petId 宠物 id
     * @return 绑定项圈的 id (如果存在) 否则 null
     */
    @Select("SELECT collar_id from collar where pet_id = #{petId}")
    String selectCollarIpByPetId(@Param("petId") Integer petId);

    /**
     * 查询所有可公开的项圈
     * @return 所有可公开的项圈
     */
    @Select(("select collar_id from collar,pet where collar.pet_id=pet.id and pet.pet_is_overt = 1"))
    Set<String> getPublicCollarIp();
}
